/* $Id: UtilityDomainObjectManagerImpl.java 
 * Copyright (C) 2011, TRAKHEES
 *  
 * Revision History
 *
 * Date  			Author 		    	Remarks
 * ---------------------------------------------------------------------------------
 *
 */
package ae.pcfc.etks.online.common.domain.manager.provider;

import java.util.Collection;
import java.util.List;

import ae.pcfc.etks.online.common.dao.UtilityDAO;
import ae.pcfc.etks.online.common.domain.TTscCity;
import ae.pcfc.etks.online.common.domain.TTscClientRole;
import ae.pcfc.etks.online.common.domain.TTscClientRoleToDepartmentMap;
import ae.pcfc.etks.online.common.domain.TTscCountry;
import ae.pcfc.etks.online.common.domain.TTscDepartments;
import ae.pcfc.etks.online.common.domain.TTscEmirate;
import ae.pcfc.etks.online.common.domain.TTscEmirateCity;
import ae.pcfc.etks.online.common.domain.TTscLicIssuingAuthority;
import ae.pcfc.etks.online.common.domain.TTscLicType;
import ae.pcfc.etks.online.common.domain.TTscNametitle;
import ae.pcfc.etks.online.common.domain.TTscVisaType;
import ae.pcfc.etks.online.common.domain.manager.UtilityDomainObjectManager;
import ae.pcfc.etks.online.common.exception.LookupException;
import ae.pcfc.etks.online.common.exception.PersistenceException;

public class UtilityDomainObjectManagerImpl implements
		UtilityDomainObjectManager {

	private UtilityDAO utilityDAO;

	/**
	 * setUtilityDAO
	 * 
	 * @param utilityDAO
	 * void
	 */
	public void setUtilityDAO(UtilityDAO utilityDAO) {
		this.utilityDAO = utilityDAO;
	}

	/**
	 * add
	 * 
	 * @see ae.pcfc.etks.online.common.domain.manager.BaseDomainObjectManager#add(java.lang.Object)
	 * 
	 */
	public <T> void add(T obj) throws PersistenceException {
		// TODO Auto-generated method stub

	}

	/**
	 * update
	 * 
	 * @see ae.pcfc.etks.online.common.domain.manager.BaseDomainObjectManager#update(java.lang.Object)
	 * 
	 */
	public <T> void update(T obj) throws PersistenceException {
		// TODO Auto-generated method stub

	}

	/**
	 * delete
	 * 
	 * @see ae.pcfc.etks.online.common.domain.manager.BaseDomainObjectManager#delete(java.lang.Object)
	 * 
	 */
	public <T> void delete(T obj) throws PersistenceException {
		// TODO Auto-generated method stub

	}

	/**
	 * findByPrimaryKey
	 * 
	 * @see ae.pcfc.etks.online.common.domain.manager.BaseDomainObjectManager#findByPrimaryKey(java.lang.String)
	 * 
	 */
	public <T> T findByPrimaryKey(String id) throws LookupException {
		// TODO Auto-generated method stub
		return null;
	}

	/**
	 * findAll
	 * 
	 * @see ae.pcfc.etks.online.common.domain.manager.BaseDomainObjectManager#findAll()
	 * 
	 */
	public <T> Collection<T> findAll() throws LookupException {
		// TODO Auto-generated method stub
		return null;
	}

	/**
	 * getCountryList
	 * 
	 * @see ae.pcfc.etks.online.common.domain.manager.UtilityDomainObjectManager#getCountryList(java.lang.String)
	 * 
	 */
	public List<TTscCountry> getCountryList(String locale) {
		return utilityDAO.getCountryList(locale);
	}

	/**
	 * getCityListByCountryCode
	 * 
	 * @see ae.pcfc.etks.online.common.domain.manager.UtilityDomainObjectManager#getCityListByCountryCode(java.lang.String, java.lang.String)
	 * 
	 */
	public List<TTscCity> getCityListByCountryCode(String countryCode, String locale) {
		return utilityDAO.getCityListByCountryCode(countryCode, locale);
	}

	/**
	 * getClientRoleList
	 * 
	 * @see ae.pcfc.etks.online.common.domain.manager.UtilityDomainObjectManager#getClientRoleList(java.lang.String, boolean)
	 * 
	 */
	public List<TTscClientRole> getClientRoleList(String clientCategory, boolean bHideDefault) throws LookupException {
		return utilityDAO.getClientRoleList(clientCategory, bHideDefault);
	}

	/**
	 * getLicIssuingAuth
	 * 
	 * @see ae.pcfc.etks.online.common.domain.manager.UtilityDomainObjectManager#getLicIssuingAuth()
	 * 
	 */
	public List<TTscLicIssuingAuthority> getLicIssuingAuth() {
		return utilityDAO.getLicIssuingAuth();
	}

	/**
	 * getLicType
	 * 
	 * @see ae.pcfc.etks.online.common.domain.manager.UtilityDomainObjectManager#getLicType()
	 * 
	 */
	public List<TTscLicType> getLicType() {
		return utilityDAO.getLicType();
	}

	/**
	 * getNameTitle
	 * 
	 * @see ae.pcfc.etks.online.common.domain.manager.UtilityDomainObjectManager#getNameTitle()
	 * 
	 */
	public List<TTscNametitle> getNameTitle() {
		return utilityDAO.getNameTitle();
	}

	/**
	 * getVisaType
	 * 
	 * @see ae.pcfc.etks.online.common.domain.manager.UtilityDomainObjectManager#getVisaType()
	 * 
	 */
	public List<TTscVisaType> getVisaType() {
		return utilityDAO.getVisaType();
	}

	/**
	 * getDepartments
	 * 
	 * @see ae.pcfc.etks.online.common.domain.manager.UtilityDomainObjectManager#getDepartments()
	 * 
	 */
	public List<TTscDepartments> getDepartments() {
		return utilityDAO.getDepartments();
	}

	/**
	 * getAvailableClientRoleList
	 * 
	 * @see ae.pcfc.etks.online.common.domain.manager.UtilityDomainObjectManager#getAvailableClientRoleList(java.lang.String, java.util.List)
	 * 
	 */
	public List<TTscClientRole> getAvailableClientRoleList(String clientCategory, List<String> roleList) throws LookupException {

		return utilityDAO.getAvailableClientRoleList(clientCategory, roleList);

	}

	/**
	 * getLicIssuingAuthorityByCode
	 * 
	 * @see ae.pcfc.etks.online.common.domain.manager.UtilityDomainObjectManager#getLicIssuingAuthorityByCode(java.lang.String)
	 * 
	 */
	public TTscLicIssuingAuthority getLicIssuingAuthorityByCode(String licIACode) throws LookupException {
		
		return utilityDAO.getLicIssuingAuthorityByCode(licIACode);
	}

	/**
	 * getNameTitleById
	 * 
	 * @see ae.pcfc.etks.online.common.domain.manager.UtilityDomainObjectManager#getNameTitleById(java.lang.Long)
	 * 
	 */
	public TTscNametitle getNameTitleById(Long nameTitleId) throws LookupException {
		
		return utilityDAO.getNameTitleById(nameTitleId);
	}

	/**
	 * getCountryByCode
	 * 
	 * @see ae.pcfc.etks.online.common.domain.manager.UtilityDomainObjectManager#getCountryByCode(java.lang.String)
	 * 
	 */
	public TTscCountry getCountryByCode(String countryCode) throws LookupException {
		
		return utilityDAO.getCountryByCode(countryCode);
	}

	/**
	 * getCityByCode
	 * 
	 * @see ae.pcfc.etks.online.common.domain.manager.UtilityDomainObjectManager#getCityByCode(java.lang.String)
	 * 
	 */
	public TTscCity getCityByCode(String cityCode) throws LookupException {

		return utilityDAO.getCityByCode(cityCode);
	}

	/**
	 * getVisaTypeByCode
	 * 
	 * @see ae.pcfc.etks.online.common.domain.manager.UtilityDomainObjectManager#getVisaTypeByCode(java.lang.String)
	 * 
	 */
	public TTscVisaType getVisaTypeByCode(String visaCode) throws LookupException {
	
		return utilityDAO.getVisaTypeByCode(visaCode);
	}

	/**
	 * findServiceDepartmentsByDepartmentId
	 * 
	 * @see ae.pcfc.etks.online.common.domain.manager.UtilityDomainObjectManager#findServiceDepartmentsByDepartmentId(java.util.List)
	 * 
	 */
	public List<TTscDepartments> findServiceDepartmentsByDepartmentId(List<String> departmentCodes) {
		// TODO Auto-generated method stub
		return utilityDAO.findServiceDepartmentsByDepartmentId(departmentCodes);
	}

	/**
	 * getDepartmentById
	 * 
	 * @see ae.pcfc.etks.online.common.domain.manager.UtilityDomainObjectManager#getDepartmentById(java.lang.String)
	 * 
	 */
	public TTscDepartments getDepartmentById(String serviceDefaultDeptCode) {
		return utilityDAO.getDepartmentById(serviceDefaultDeptCode);
	}

	/**
	 * getDepartmentsByRoleIds
	 * 
	 * @see ae.pcfc.etks.online.common.domain.manager.UtilityDomainObjectManager#getDepartmentsByRoleIds(java.util.List)
	 * 
	 */
	public List<TTscClientRoleToDepartmentMap> getDepartmentsByRoleIds(List<String> roleIds) {
		// TODO Auto-generated method stub
		return utilityDAO.getDepartmentsByRoleIds(roleIds);
	}

	/**
	 * getDepartmentByCode
	 * 
	 * @see ae.pcfc.etks.online.common.domain.manager.UtilityDomainObjectManager#getDepartmentByCode(java.lang.String)
	 * 
	 */
	public TTscDepartments getDepartmentByCode(String strDeptCode) {
		
		return utilityDAO.getDepartmentByCode(strDeptCode);
	}

	/**
	 * getAllLicIssuingAuth
	 * 
	 * @see ae.pcfc.etks.online.common.domain.manager.UtilityDomainObjectManager#getAllLicIssuingAuth()
	 * 
	 */
	public List<TTscLicIssuingAuthority> getAllLicIssuingAuth() {
		return utilityDAO.getAllLicIssuingAuth();
	}

	public List<TTscEmirate> getEmirates(String locale) {

		return utilityDAO.getEmirates(locale);
	}

	public List<TTscEmirateCity> getEmirateCityByEmirateCode(String emirateCode,
			String locale) {

		return utilityDAO.getEmirateCityByEmirateCode(emirateCode, locale);
	}
}
